﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Windows.Controls;
//using System.Windows;
//using System.ComponentModel;

//namespace UsingNonMVVMElements
//{
//    class WebBrowserAdapter : FrameworkElement
//    {
//        #region Constructor
        
//        public WebBrowserAdapter()
//        {
//            SourcePropertyDescriptor = DependencyPropertyDescriptor.FromProperty(SourceProperty, typeof(WebBrowserAdapter));
//            SourcePropertyDescriptor.AddValueChanged(this, SourcePropertyChanged);
//        }

//        #endregion

//        #region Adaptee
        
//        private WebBrowser webBrowser = new WebBrowser();
        
//        #endregion
        
//        #region Dependency Properties

//        public static DependencyProperty SourceProperty = DependencyProperty.Register(
//            "Source", typeof(string), typeof(WebBrowserAdapter), new PropertyMetadata(string.Empty));

//        public string Source
//        {
//            get { return (string)GetValue(SourceProperty); }
//            set { SetValue(SourceProperty, value); }
//        }

//        #region Dependency Property Descriptors

//        private DependencyPropertyDescriptor SourcePropertyDescriptor;
               
//        void SourcePropertyChanged(object o, EventArgs e)
//        {
//            this.webBrowser.Source = new System.Uri(this.Source);
//        }
        
//        #endregion
        
//        #endregion
        
//        protected override void  OnRender(System.Windows.Media.DrawingContext drawingContext)
//        {
//            base.OnRender(drawingContext);  
//        }

//        protected override Size  MeasureOverride(Size availableSize)
//        {
//             return base.MeasureOverride(availableSize);
//        }
               

//        protected override Size ArrangeOverride(Size finalSize)
//        {
//             return base.ArrangeOverride(finalSize);
//        }

       
//    }
//}
